A constructive denotational semantics for Kahn networks in Coq∗
نویسنده
چکیده
Semantics of programming languages and interactive environments for the development of proofs and programs are two important aspects of Gilles Kahn’s scientific contributions. In his paper “The semantics of a simple language for parallel programming” [11], he proposed an interpretation of (deterministic) parallel programs (now called Kahn networks) as stream transformers based on the theory of complete partial orders (cpos). A restriction of this language to synchronous programs is the basis of the data-flow Lustre language which is used for the development of critical embedded systems [14, 10]. We present a formalization of this seminal paper in the Coq proof assistant [4, 15]. For that purpose, we developed a general library for cpos. Our cpos are defined with an explicit function computing the least upper bound (lub) of an increasing sequence of elements. This is different from what Kahn developed for the standard Coq library where only the existence of lubs (for arbitrary directed sets) is required, giving no way to explicitly compute a fixpoint. We define a cpo structure for the type of possibly infinite streams. It is then possible to define formally what is a Kahn network and what is its semantics, achieving the goal of having the concept closed under composition and recursion. The library is illustrated with an example taken from the original paper as well as the Sieve of Eratosthenes, an example of a dynamic network.
منابع مشابه
Some Domain Theory and Denotational Semantics in Coq
We present a Coq formalization of constructive ω-cpos (extending earlier work by Paulin-Mohring) up to and including the inverselimit construction of solutions to mixed-variance recursive domain equations, and the existence of invariant relations on those solutions. We then define operational and denotational semantics for both a simplytyped CBV language with recursion and an untyped CBV langua...
متن کاملTheorem Proving Support in Programming Language Semantics N° ???? Theorem Proving Support in Programming Language Semantics
We describe several views of the semantics of a simple programming language as formal documents in the calculus of inductive constructions that can be verified by the Coq proof system. Covered aspects are natural semantics, denotational semantics, axiomatic semantics, and abstract interpretation. Descriptions as recursive functions are also provided whenever suitable, thus yielding a a verifica...
متن کاملTheorem proving support in programming language semantics
We describe several views of the semantics of a simple programming language as formal documents in the calculus of inductive constructions that can be verified by the Coq proof system. Covered aspects are natural semantics, denotational semantics, axiomatic semantics, and abstract interpretation. Descriptions as recursive functions are also provided whenever suitable, thus yielding a a verifica...
متن کاملKahn’s Principle and the Semantics of Discrete Event Systems
Kahn process networks (KPN) is an elegant model of computation for deterministic concurrent processes. The denotational semantics of KPN is based on the theory of partially order sets. This report explores the application of this approach to the semantics of discrete event systems.
متن کاملA Kahn Principle for Networks of Nonmonotonic Real-time Processes
We show that the input-output function computed by a network of asynchronous real-time processes is denoted by the unique xed point of a Scott continuous functional even though the network or its components may compute a discontinuous function. This extends a well-known principle of Kahn [Kahn, 1974] to an important class of parallel systems that has resisted the traditional xed point approach....
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007